home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / mssql_ping.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  74 lines

  1.  
  2. if(description)
  3. {
  4.  script_id(10674);
  5.  script_version ("$Revision: 1.16 $");
  6.  name["english"] = "Microsoft's SQL UDP Info Query";
  7.  script_name(english:name["english"]);
  8.  
  9.  desc["english"] = "
  10. The plugin sends a SQL 'ping' request to retrieve
  11. information about the remote MS SQL database (if any)
  12.  
  13. Risk factor : Low
  14. Solution : filter incoming traffic to this port";
  15.  
  16.  
  17.  script_description(english:desc["english"]);
  18.  
  19.  summary["english"] = "Microsoft's SQL UDP Info Query";
  20.  script_summary(english:summary["english"]);
  21.  
  22.  script_category(ACT_GATHER_INFO);
  23.  
  24.  script_copyright(english:"This script is Copyright (C) 2001 H D Moore");
  25.  family["english"] = "Windows";
  26.  script_family(english:family["english"]);
  27.  exit(0);
  28. }
  29.  
  30. #
  31. # The script code starts here
  32. #
  33.  
  34. ##
  35. # data returned will look like:
  36. #
  37. #   xServerName;REDEMPTION;InstanceName;MSSQLSERVER;IsClustered;No;Version;8.00.194;tcp;1433;np;\\REDEMPTION\pipe\sql\query;;
  38. #
  39. ##
  40.  
  41. # this magic info request packet
  42. req = raw_string(0x02);
  43.  
  44.  
  45. if(!get_udp_port_state(1434))exit(0);
  46.  
  47. soc = open_sock_udp(1434);
  48.  
  49.  
  50. if(soc)
  51. {
  52.     send(socket:soc, data:req);
  53.     r  = recv(socket:soc, length:4096);
  54.     close(soc);
  55.     if(!r)exit(0);
  56.         r = strstr(r, "Server");
  57.         r = str_replace(find:";", replace:" ", string:r);
  58.     if(r)
  59.     {
  60.             report = string("Microsoft SQL server has a function wherein remote users can \n");
  61.                 report += string("query the database server for the version that is being run.\n");
  62.                 report += string("The query takes place over the same UDP port which handles the \n");
  63.                 report += string("mapping of multiple SQL server instances on the same machine.\n\n");
  64.                 report += string("CAVEAT: It is important to note that, after Version 8.00.194, Microsoft\n");
  65.                 report += string("decided not to update this function.  This means that the data \n");
  66.                 report += string("returned by the SQL ping is inaccurate for newer releases of SQL Server\n\n");
  67.          report += string("Nessus sent an MS SQL 'ping' request. The results were : \n", r, "\n\n");
  68.                 report += string("If you are not running multiple instances of Microsoft SQL Server\n");
  69.                 report += string("on the same machine, It is suggested you filter incoming traffic to this port");
  70.         security_warning(port:1434, protocol:"udp", data:report);
  71.         set_kb_item(name:"mssql/udp/1434", value:TRUE);
  72.     }
  73. }
  74.